﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Chaunce.FrameWork.NetCore.SysCore.Configuration
{
    /// <summary>
    /// Represents startup Nop configuration parameters
    /// </summary>
    public partial class ChaunceConfig
    {
        /// <summary>
        /// 是否显示完整异常内容.(当为开发环境时忽略此参数)
        /// </summary>
        public bool DisplayFullErrorStack { get; set; }

        /// <summary>
        ///请求头参数"Cache-Control" 
        /// </summary>
        public string StaticFilesCacheControl { get; set; }

        /// <summary>
        /// http 返回内容是否压缩
        /// </summary>
        public bool UseResponseCompression { get; set; }


        /// <summary>
        ///  是否启用redis缓存
        /// </summary>
        public bool RedisCacheEnabled { get; set; }


        /// <summary>
        /// 是否启用性能监控
        /// </summary>
        public bool AMPEnabled { get; set; }
        /// <summary>
        /// 是否启用ef 监控
        /// </summary>
        public bool MiniProfilerEnabled { get; set; }
        /// <summary>
        /// token 认证参数
        /// </summary>
        public JwtBearerConfig JwtBearer { get; set; }
        /// <summary>
        /// 数据库连接字符串
        /// </summary>
        public ConnectionConfig ConnectionStrings { get; set; }
        /// <summary>
        /// 应用程序名称
        /// </summary>
        public string ApplicationName { get; set; }

        /// <summary>
        /// 超级角色 超级角色拥有系统所有权限
        /// </summary>
        public string SuperRole { get; set; } = "";
        /// <summary>
        /// api 执行超时警告时长(秒)
        /// </summary>
        public int RequestWarningThreshold { get; set; } = 5;
        /// <summary>
        /// swagger 说明配置
        /// </summary>
        public SwaggerDocConfig SwaggerDoc { get; set; }
        /// <summary>
        /// api代理请求超时 单位秒.默认60
        /// </summary>
        public int ApiProxyTimeout { get; set; } = 60;
    }
}
